//
//  UIImage+Tool.h
//  Demo
//
//  Created by xk jiang on 2017/10/10.
//  Copyright © 2017年 xk jiang. All rights reserved.
//

#import <UIKit/UIKit.h>

typedef NS_ENUM(NSInteger, GradientDirection) {
    GradientDirectionTopToBottom = 0,    // 从上往下 渐变
    GradientDirectionLeftToRight,        // 从左往右
    GradientDirectionBottomToTop,      // 从下往上
    GradientDirectionRightToLeft,      // 从右往左
    GradientDirectionLeftAndBottomToRightAndTop, // 从左下到右上
    GradientDirectionLeftAndTopToRightAndBottom //从左上到右下
};

@interface UIImage (MJUI)

/**
 color 转 UIImage

 @param color 颜色
 @return UIImage
 */
+ (UIImage *)mj_imageWithColor:(UIColor *)color;

/**
 修改图片颜色 （娄底图）
 
 @param  color 填充色
 @return UIImage
 */
- (UIImage *)mj_imageChangeColor:(UIColor *)color;

/// 图片旋转 - 相机拍出的照片要旋转
- (UIImage *)mj_imageWithRightOrientation;

/// 保存图片到相册
- (void)mj_imageSavedPhotosToAlbum;

/// 暗黑模式图片
/// @param light 正常模式str
/// @param dark 暗黑模式
+ (UIImage *)mj_imageWithNameLight:(NSString *)light dark:(NSString *)dark;

/// 暗黑模式图片
/// @param light 正常image
/// @param dark 暗黑image
+ (UIImage *)mj_imageWithImageLight:(UIImage *)light dark:(UIImage *)dark;

/**
 *  @brief  生成渐变色图片
 *
 *  @param  bounds  图片的大小
 *  @param  colors      渐变颜色组
 *  @param  gradientType     渐变方向
 *
 *  @return 图片
 */
+ (UIImage*)mj_gradientImageWithBounds:(CGRect)bounds andColors:(NSArray*)colors andGradientType:(GradientDirection)gradientType;

/// 旋转图片
/// @param orientation 方向
- (UIImage *)mj_imageWithRotation:(UIImageOrientation)orientation;

/// gif图片
/// @param gIFName gif图片名称
+ (UIImage *)mj_imageWithGIFNamed:(NSString *)gIFName;

/// Bundle 图片
/// @param name 图片名称
+ (UIImage *)mj_imageWithBundleNamed:(NSString *)name ofType:(NSString *)ofType;

/**
 生成二维码
 QRStering：字符串
 imageFloat：二维码图片大小
 */
+ (UIImage *)mj_createQRCodeWithString:(NSString *)QRString withImgSize:(CGFloat)imageFloat;

/** 将CIImage转换成UIImage 并放大(内部转换使用)*/
+ (UIImage *)mj_imageWithImageSize:(CGFloat)size withCIIImage:(CIImage *)ciiImage;
@end
